home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-08-10 | 14.6 KB | 372 lines | [ TEXT/MPS ]
(* File: Drag.mod Contains: Drag and Drop Interfaces. Version: Technology: Macintosh Drag and Drop 1.1 Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17 Copyright: © 1984-1995 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, use the Apple Bug Reporter stack. Include the file and version information (from above) in the problem description and send to: Internet: apple.bugs.applelink.apple.com AppleLink: APPLE.BUGS *) (*$TAGS-*) (*$CALLING PASCAL*) MODULE Drag; IMPORT SYSTEM, Types, Memory, Quickdraw, Files, Events, AppleEvents; (* $PUSH*) (* $ALIGN MAC68K*) (* $LibExport+*) CONST (* Flavor Flags *) flavorSenderOnly* = $00000001; (* flavor is available to sender only *) flavorSenderTranslated* = $00000002; (* flavor is translated by sender *) flavorNotSaved* = $00000004; (* flavor should not be saved *) flavorSystemTranslated* = $00000100; (* flavor is translated by system *) TYPE FlavorFlags* = LONGINT; CONST (* Drag Attributes *) dragHasLeftSenderWindow* = $00000001; (* drag has left the source window since TrackDrag *) dragInsideSenderApplication* = $00000002; (* drag is occurring within the sender application *) dragInsideSenderWindow* = $00000004; (* drag is occurring within the sender window *) TYPE DragAttributes* = LONGINT; CONST (* Special Flavor Types *) flavorTypeHFS* = LONG("hfs "); (* flavor type for HFS data *) flavorTypePromiseHFS* = LONG("phfs"); (* flavor type for promised HFS data *) flavorTypeDirectory* = LONG("diry"); (* Drag Tracking Handler Messages *) dragTrackingEnterHandler* = 1; (* drag has entered handler *) dragTrackingEnterWindow* = 2; (* drag has entered window *) dragTrackingInWindow* = 3; (* drag is moving within window *) dragTrackingLeaveWindow* = 4; (* drag has exited window *) dragTrackingLeaveHandler* = 5; (* drag has exited handler *) TYPE DragTrackingMessage* = INTEGER; CONST (* Drag Drawing Procedure Messages* *) dragRegionBegin* = 1; (* initialize drawing *) dragRegionDraw* = 2; (* draw drag feedback *) dragRegionHide* = 3; (* hide drag feedback *) dragRegionIdle* = 4; (* drag feedback idle time *) dragRegionEnd* = 5; (* end of drawing *) TYPE DragRegionMessage* = INTEGER; CONST (* Zoom Acceleration *) zoomNoAcceleration* = 0; (* use linear interpolation *) zoomAccelerate* = 1; (* ramp up step size *) zoomDecelerate* = 2; (* ramp down step size *) TYPE ZoomAcceleration* = INTEGER; (* Drag Manager Data Types *) DragReference* = LONGINT; ItemReference* = LONGINT; FlavorType* = Types.ResType; (* HFS Flavors *) HFSFlavor* = RECORD fileType*: Types.OSType; (* file type *) fileCreator*: Types.OSType; (* file creator *) fdFlags*: INTEGER; (* Finder flags *) fileSpec*: Files.FSSpec; (* file system specification *) END; PromiseHFSFlavor* = RECORD fileType*: Types.OSType; (* file type *) fileCreator*: Types.OSType; (* file creator *) fdFlags*: INTEGER; (* Finder flags *) promisedFlavor*: FlavorType; (* promised flavor containing an Files.FSSpec *) END; (* Application-Defined Drag Handler Routines *) DragTrackingHandlerProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (message: DragTrackingMessage; theWindow: Quickdraw.WindowPtr; handlerRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference): Types.OSErr; DragTrackingHandlerUPP* = Types.UniversalProcPtr; CONST uppDragTrackingHandlerProcInfo* = $00003FA0; (* PROCEDURE (2 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *) PROCEDURE NewDragTrackingHandlerProc*(userRoutine: DragTrackingHandlerProcPtr): DragTrackingHandlerUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE CallDragTrackingHandlerProc*(message: DragTrackingMessage; theWindow: Quickdraw.WindowPtr; handlerRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference; userRoutine: DragTrackingHandlerUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) TYPE DragTrackingHandler* = DragTrackingHandlerUPP; DragReceiveHandlerProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theWindow: Quickdraw.WindowPtr; handlerRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference): Types.OSErr; DragReceiveHandlerUPP* = Types.UniversalProcPtr; CONST uppDragReceiveHandlerProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *) PROCEDURE NewDragReceiveHandlerProc*(userRoutine: DragReceiveHandlerProcPtr): DragReceiveHandlerUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE CallDragReceiveHandlerProc*(theWindow: Quickdraw.WindowPtr; handlerRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference; userRoutine: DragReceiveHandlerUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) TYPE DragReceiveHandler* = DragReceiveHandlerUPP; (* Application-Defined Routines *) DragSendDataProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theType: FlavorType; dragSendRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theItemRef: ItemReference; theDragRef: DragReference): Types.OSErr; DragSendDataUPP* = Types.UniversalProcPtr; CONST uppDragSendDataProcInfo* = $00003FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *) PROCEDURE NewDragSendDataProc*(userRoutine: DragSendDataProcPtr): DragSendDataUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE CallDragSendDataProc*(theType: FlavorType; dragSendRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theItemRef: ItemReference; theDragRef: DragReference; userRoutine: DragSendDataUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) TYPE DragSendDataProc* = DragSendDataUPP; DragInputProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR mouse: Types.Point; VAR modifiers: INTEGER; dragInputRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference): Types.OSErr; DragInputUPP* = Types.UniversalProcPtr; CONST uppDragInputProcInfo* = $00003FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *) PROCEDURE NewDragInputProc*(userRoutine: DragInputProcPtr): DragInputUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE CallDragInputProc*(VAR mouse: Types.Point; VAR modifiers: INTEGER; dragInputRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference; userRoutine: DragInputUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) TYPE DragInputProc* = DragInputUPP; DragDrawingProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (message: DragRegionMessage; showRegion: Quickdraw.RgnHandle; showOrigin: Types.Point; hideRegion: Quickdraw.RgnHandle; hideOrigin: Types.Point; dragDrawingRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference): Types.OSErr; DragDrawingUPP* = Types.UniversalProcPtr; CONST uppDragDrawingProcInfo* = $000FFFA0; (* PROCEDURE (2 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *) PROCEDURE NewDragDrawingProc*(userRoutine: DragDrawingProcPtr): DragDrawingUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE CallDragDrawingProc*(message: DragRegionMessage; showRegion: Quickdraw.RgnHandle; showOrigin: Types.Point; hideRegion: Quickdraw.RgnHandle; hideOrigin: Types.Point; dragDrawingRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr; theDragRef: DragReference; userRoutine: DragDrawingUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) TYPE DragDrawingProc* = DragDrawingUPP; (* Drag Manager Routines *) (* Installing and Removing Drag Handlers *) PROCEDURE InstallTrackingHandler*(trackingHandler: DragTrackingHandler; theWindow: Quickdraw.WindowPtr; handlerRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7001, $ABED; (*$END*) PROCEDURE InstallReceiveHandler*(receiveHandler: DragReceiveHandler; theWindow: Quickdraw.WindowPtr; handlerRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7002, $ABED; (*$END*) PROCEDURE RemoveTrackingHandler*(trackingHandler: DragTrackingHandler; theWindow: Quickdraw.WindowPtr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7003, $ABED; (*$END*) PROCEDURE RemoveReceiveHandler*(receiveHandler: DragReceiveHandler; theWindow: Quickdraw.WindowPtr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7004, $ABED; (*$END*) (* Creating and Disposing Drag References *) PROCEDURE NewDrag*(VAR theDragRef: DragReference): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7005, $ABED; (*$END*) PROCEDURE DisposeDrag*(theDragRef: DragReference): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7006, $ABED; (*$END*) (* Adding Drag Item Flavors *) PROCEDURE AddDragItemFlavor*(theDragRef: DragReference; theItemRef: ItemReference; theType: FlavorType; dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; dataSize: Memory.Size; theFlags: FlavorFlags): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7007, $ABED; (*$END*) PROCEDURE SetDragItemFlavorData*(theDragRef: DragReference; theItemRef: ItemReference; theType: FlavorType; dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; dataSize: Memory.Size; dataOffset: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7009, $ABED; (*$END*) (* Providing Drag Callback Procedures *) PROCEDURE SetDragSendProc*(theDragRef: DragReference; sendProc: DragSendDataProc; dragSendRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700A, $ABED; (*$END*) PROCEDURE SetDragInputProc*(theDragRef: DragReference; inputProc: DragInputProc; dragInputRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700B, $ABED; (*$END*) PROCEDURE SetDragDrawingProc*(theDragRef: DragReference; drawingProc: DragDrawingProc; dragDrawingRefCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700C, $ABED; (*$END*) PROCEDURE TrackDrag*(theDragRef: DragReference; (*CONST*)VAR theEvent: Events.EventRecord; theRegion: Quickdraw.RgnHandle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700D, $ABED; (*$END*) (* Getting Drag Item Information *) PROCEDURE CountDragItems*(theDragRef: DragReference; VAR numItems: INTEGER): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700E, $ABED; (*$END*) PROCEDURE GetDragItemReferenceNumber*(theDragRef: DragReference; index: INTEGER; VAR theItemRef: ItemReference): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700F, $ABED; (*$END*) PROCEDURE CountDragItemFlavors*(theDragRef: DragReference; theItemRef: ItemReference; VAR numFlavors: INTEGER): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7010, $ABED; (*$END*) PROCEDURE GetFlavorType*(theDragRef: DragReference; theItemRef: ItemReference; index: INTEGER; VAR theType: FlavorType): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7011, $ABED; (*$END*) PROCEDURE GetFlavorFlags*(theDragRef: DragReference; theItemRef: ItemReference; theType: FlavorType; VAR theFlags: FlavorFlags): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7012, $ABED; (*$END*) PROCEDURE GetFlavorDataSize*(theDragRef: DragReference; theItemRef: ItemReference; theType: FlavorType; VAR dataSize: Memory.Size): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7013, $ABED; (*$END*) PROCEDURE GetFlavorData*(theDragRef: DragReference; theItemRef: ItemReference; theType: FlavorType; dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR dataSize: Memory.Size; dataOffset: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7014, $ABED; (*$END*) PROCEDURE GetDragItemBounds*(theDragRef: DragReference; theItemRef: ItemReference; VAR itemBounds: Types.Rect): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7015, $ABED; (*$END*) PROCEDURE SetDragItemBounds*(theDragRef: DragReference; theItemRef: ItemReference; (*CONST*)VAR itemBounds: Types.Rect): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7016, $ABED; (*$END*) PROCEDURE GetDropLocation*(theDragRef: DragReference; VAR dropLocation: AppleEvents.AEDesc): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7017, $ABED; (*$END*) PROCEDURE SetDropLocation*(theDragRef: DragReference; (*CONST*)VAR dropLocation: AppleEvents.AEDesc): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7018, $ABED; (*$END*) (* Getting Information About a Drag *) PROCEDURE GetDragAttributes*(theDragRef: DragReference; VAR flags: DragAttributes): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7019, $ABED; (*$END*) PROCEDURE GetDragMouse*(theDragRef: DragReference; VAR mouse: Types.Point; VAR pinnedMouse: Types.Point): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701A, $ABED; (*$END*) PROCEDURE SetDragMouse*(theDragRef: DragReference; pinnedMouse: Types.Point): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701B, $ABED; (*$END*) PROCEDURE GetDragOrigin*(theDragRef: DragReference; VAR initialMouse: Types.Point): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701C, $ABED; (*$END*) PROCEDURE GetDragModifiers*(theDragRef: DragReference; VAR modifiers: INTEGER; VAR mouseDownModifiers: INTEGER; VAR mouseUpModifiers: INTEGER): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701D, $ABED; (*$END*) (* Drag Highlighting *) PROCEDURE ShowDragHilite*(theDragRef: DragReference; hiliteFrame: Quickdraw.RgnHandle; inside: BOOLEAN): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701E, $ABED; (*$END*) PROCEDURE HideDragHilite*(theDragRef: DragReference): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701F, $ABED; (*$END*) PROCEDURE DragPreScroll*(theDragRef: DragReference; dH: INTEGER; dV: INTEGER): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7020, $ABED; (*$END*) PROCEDURE DragPostScroll*(theDragRef: DragReference): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7021, $ABED; (*$END*) PROCEDURE UpdateDragHilite*(theDragRef: DragReference; updateRgn: Quickdraw.RgnHandle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7022, $ABED; (*$END*) (* Drag Manager Utilities *) PROCEDURE WaitMouseMoved*(initialMouse: Types.Point): BOOLEAN; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7023, $ABED; (*$END*) PROCEDURE ZoomRects*((*CONST*)VAR fromRect: Types.Rect; (*CONST*)VAR toRect: Types.Rect; zoomSteps: INTEGER; acceleration: ZoomAcceleration): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7024, $ABED; (*$END*) PROCEDURE ZoomRegion*(region: Quickdraw.RgnHandle; zoomDistance: Types.Point; zoomSteps: INTEGER; acceleration: ZoomAcceleration): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7025, $ABED; (*$END*) (* $ALIGN RESET*) (* $POP*) END Drag.